package x.trident.core.email.api;

/**
 * 邮件配置api
 *
 * @author jason.yan
 * @date 2022/6/30
 */
public interface EmailConfigApi {

    /**
     * smtp服务器地址，默认用126的邮箱
     *
     * @return String
     */
    String getSmtpHost();

    /**
     * smtp服务端口
     *
     * @return Integer
     */
    Integer getSmtpPort();

    /**
     * 是否启用账号密码验证
     *
     * @return bool
     */
    Boolean getSmtpAuthEnable();

    /**
     * 邮箱的账号
     *
     * @return String
     */
    String getSmtpUser();

    /**
     * 邮箱的密码或者授权码
     *
     * @return String
     */
    String getSmtpPass();

    /**
     * 邮箱的发送方邮箱
     *
     * @return String
     */
    String getSmtpFrom();

    /**
     * 使用 STARTTLS安全连接，STARTTLS是对纯文本通信协议的扩展。它将纯文本连接升级为加密连接（TLS或SSL）， 而不是使用一个单独的加密通信端口。
     *
     * @return bool
     */
    Boolean getStartTlsEnable();

    /**
     * 使用 SSL安全连接
     *
     * @return Boolean
     */
    Boolean getSSLEnable();

    /**
     * 指定的端口连接到在使用指定的套接字工厂
     *
     * @return Integer
     */
    Integer getSocketFactoryPort();

    /**
     * SMTP超时时长，单位毫秒
     *
     * @return Long
     */
    Long getTimeout();

    /**
     * Socket连接超时值，单位毫秒，缺省值不超时
     *
     * @return Long
     */
    Long getConnectionTimeout();
}
